This invention relates to an MPEG multiplexer and more specifically to a system that multiplexes MPEG frames from different sources onto a common channel in a cable network.
Cable networks are used to deliver the Internet into remote subscriber sites such as a home or office over cable TV links. A cable TV company central location is referred to as a head end. The head end broadcasts data over the cable network to the remote subscriber sites. A cable modem at the remote subscriber site converts data on the TV channel into Ethernet packets that are sent over a Local Area Network (LAN) to a personal computer or server in the home or office.
One problem with transmitting Internet data over cable networks is that data from separate Internet sources must be broadcast on separate TV channels. Because there are only a limited number of available cable TV channels, broadcasting internet data on separate TV channels reduces the number of television programs that the cable company can provide in turn reducing cable company revenues. The cable modems at the subscriber sites are also expensive because each cable modem must demodulate data from multiple TV channels.
Motion Picture Experts Group 2 (MPEG 2) frames are used for sending digital data, video or audio over the cable network. MPEG 2 frames include a packet identifier that identifies the source of the frame and a payload that contains the data, video or voice. The MPEG-2 bit stream also includes time stamps that synchronize circuitry on opposite ends of the cable network. In MPEG 2, the video and audio data are transmitted in separate MPEG bit streams that must arrive at subscriber sites at the same time. If either MPEG bit stream is delayed as a result of being buffered or multiplexed with other data, the timing relationship between the video bit stream and the associated audio bit stream is corrupted. If the time stamp is buffered or delayed from its original time reference, circuitry on opposite ends of the cable network becomes unsynchronized and can corrupt data in the bit stream. It is, therefore, very difficult to multiplex data from separate data sources onto the same MPEG bit stream.
Accordingly, a need remains for multiplexing data from different sources onto a common channel on a cable network.
An add/drop multiplexer is used in a cable network to multiplex data from different sources together on a common cable television channel while guaranteeing allocation of a minimum amount of bandwidth to each one of multiple data sources. The add/drop multiplexer is defined as a preconditioning circuit, MPEG idle detect circuit and multiplexer that both preconditions a first MPEG bit stream and then combines data from a second source into the preconditioned MPEG bit stream. The percentage of bandwidth allocated to each source is controlled by preconditioning a first MPEG bit stream before being multiplexed with a second MPEG bit stream. A first data source from a cable television head end normally broadcasts a first bit stream over the cable link to cable modems at remote subscriber locations. The cable modems convert the data broadcast on a cable TV channel into network packets that are sent to computers in the subscriber home or office. A second data source has packet data that also must be broadcast data over the cable link.
The add/drop multiplexer is coupled to the first data source and if necessary preconditions the first bit stream by inserting idle frames. The add/drop multiplexer determines when a predetermined number of MPEG frames have occurred in the first MPEG bit stream. If a minimum number of idle frames have occurred naturally, no idle frames are forced into the first MPEG bit stream by the add/drop multiplexer. If the number of naturally occurring idle frames is below the minimum number, the idle add/drop multiplexer forces a minimum number of idle frames into the MPEG bit stream that corresponds with a minimum bandwidth allotment for the second data source.
Before inserting idle frames, the add/drop multiplexer determines whether a time stamp exists in a next one of the MPEG frames in the first bit stream. An idle is inserted as the next one of the MPEG frames when the predetermined number of frames have occurred and the next frame is not a time stamp. If the next frame contains a time stamp, the add/drop multiplexer inserts the idle frame after the time stamp. Thus, the add/drop multiplexer will not corrupt time stamps in the first bit stream.
The add/drop multiplexer then multiplexes data from the first data source with the data from the second data source by replacing idle frames in the first bit stream with data packets from the second data source. Preconditioning the first bit stream to force a minimum number of idle frames, guarantees the second data source a predetermined amount of bandwidth on the cable network. Thus, the add/drop multiplexer controls bandwidth allocation, allows simple multiplexing circuitry and ensures time stamps are not corrupted.
The foregoing and other objects, features and advantages of the invention will become more readily apparent from the following detailed description of a preferred embodiment of the invention which proceeds with reference to the accompanying drawings.